package com.xique.park.service.command.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.domain.ParkGarage;

import java.util.List;

/**
 * 车库命令下发
 *
 * @author: xique
 */
public interface IParkGarageCommandService {

    /**
     * 单个设备下发车库
     *
     * @param sn         设备序列号
     * @param parkGarage 车库信息
     * @return 下发结果
     */
    AjaxResult downSingleDevParkGarage(String sn, ParkGarage parkGarage);

    /**
     * 单个设备下载车库列表
     *
     * @param parkId 车场ID
     * @param sn     设备序列号
     * @param list   车库列表
     * @return 下发结果
     */
    AjaxResult downSingleDevParkGarageList(Long parkId, String sn, List<ParkGarage> list);

    /**
     * 所有设备下发车库
     *
     * @param parkGarage  车库信息
     * @param reminderMsg 提示消息
     * @return 下发结果
     */
    AjaxResult downParkGarage(ParkGarage parkGarage, String reminderMsg);

    /**
     * 单个设备下发删除车库命令
     *
     * @param sn       设备序列号
     * @param garageId 车库ID
     * @return 下发结果
     */
    AjaxResult delSingleDevParkGarage(String sn, Long garageId);

    /**
     * 所有设备下发删除车库命令
     *
     * @param garageId    车库ID
     * @param reminderMsg 提示消息
     * @return 下发结果
     */
    AjaxResult delParkGarage(Long garageId, String reminderMsg);

    /**
     * 更新车位相关信息
     *
     * @param parkId   车场ID
     * @param garageId 车库ID
     * @return 下发结果
     */
    AjaxResult updateSpaces(Long parkId, Long garageId);
}
